package com.sunda.spmsoversea.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sunda.spmscommon.ResponseResult;
import com.sunda.spmsoversea.dto.OverseaRequisitionDTO;
import com.sunda.spmsoversea.dto.OverseaRequisitionQueryDTO;
import com.sunda.spmsoversea.entity.OverseaRequisition;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 领用申请表 服务类
 * </p>
 *
 * @author Wayne
 * @since 2021-09-22
 */
public interface IOverseaRequisitionService extends IService<OverseaRequisition> {

    /** 获取领用申请列表 */
    IPage getOverseaRequisitionPage (OverseaRequisitionQueryDTO overseaRequisitionQueryDTO);

    /** 创建领用申请 */
    ResponseResult createOverseaRequisition (OverseaRequisitionDTO overseaRequisitionDTO, String userId);

    /** 根据 领用申请UUID 查询领用申请详情及领用明细 */
    ResponseResult getRequisitionAndDtl(String uuidRequisition);

    /** 领用申请审批通过 */
    ResponseResult updateOverseaRequisition(OverseaRequisitionDTO overseaRequisitionDTO, String userId);

    /** 领用申请退回 */
    ResponseResult cancelOverseaRequisition(String uuidRequisition, Integer dataVersion, String spmsStatus, String userId);

    /** 根据领用申请UUID获取领用申请信息 */
    OverseaRequisition getOverseaRequisition(String uuidRequisition);

    /** 根据领用申请更新领用申请表头信息 */
    int updateRequisition(OverseaRequisition overseaRequisition);

    /** 待发货领用申请异常报表/审批通过未出库超过3天 */
    List<Map<String, Object>> getRequisitionOverdueReports(String werks, String currentDate);
}
